home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Dev / Oberon / source / amiga / MathIEEEDoubBas.mod < prev    next >
Text File  |  1995-06-29  |  3KB  |  136 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: MathIEEEDoubBas.mod $
  4.   Description: Interface to mathieeedoubbas.library
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.8 $
  8.       $Author: fjc $
  9.         $Date: 1995/06/04 23:13:14 $
  10.  
  11.   Includes Release 40.15
  12.  
  13.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  14.       All Rights Reserved
  15.  
  16.   Oberon-A interface Copyright © 1994-1995, Frank Copeland.
  17.   This file is part of the Oberon-A Interface.
  18.   See Oberon-A.doc for conditions of use and distribution.
  19.  
  20. ***************************************************************************)
  21.  
  22. <* STANDARD- *>
  23.  
  24. MODULE [2] MathIEEEDoubBas;
  25.  
  26. (*
  27.   This module is not defined.  This is because the compiler cannot yet
  28.   handle the LONGREAL as an 8-byte IEEE double-precision real.
  29.   Have patience.
  30. *)
  31.  
  32. (*
  33. IMPORT SYS := SYSTEM, Kernel, e := Exec, m := MathLibrary;
  34.  
  35.  
  36. (*-- MathIEEEDoubBas Base variable --------------------------------------*)
  37.  
  38. CONST
  39.  
  40.   pi      * = 3.141592653589793D;
  41.  
  42.   twoPi   * = 6.283185307179586D;
  43.   pi2     * = 1.570796326794897D;
  44.   pi4     * = 0.785398163397448D;
  45.  
  46.   e       * = 2.718281828459045D;
  47.  
  48.   log10   * = 2.302585092994046D;
  49.   fpTen   * = 10.0D;
  50.   fpOne   * = 1.0D;
  51.   fpHalf  * = 0.5D;
  52.   fpZero  * = 0.0D;
  53.  
  54.   mathIEEEDoubBasName * = "mathieeedoubbas.library";
  55.  
  56. VAR
  57.  
  58.   base * : m.MathIEEEBasePtr;
  59.  
  60.  
  61. (*-- Library Functions ------------------------------------------------*)
  62.  
  63.  
  64. PROCEDURE Fix* [base,-30]
  65.   ( parm [0] : e.DOUBLE )
  66.   : LONGINT;
  67.  
  68. PROCEDURE Flt* [base,-36]
  69.   ( integer [0] : LONGINT  )
  70.   : e.DOUBLE;
  71.  
  72. PROCEDURE Cmp* [base,-42]
  73.   ( leftParm  [0] : e.DOUBLE;
  74.     rightParm [1] : e.DOUBLE )
  75.   : LONGINT;
  76.  
  77. PROCEDURE Tst* [base,-48]
  78.   ( parm [0] : e.DOUBLE )
  79.   : LONGINT;
  80.  
  81. PROCEDURE Abs* [base,-54]
  82.   ( parm [0] : e.DOUBLE )
  83.   : e.DOUBLE;
  84.  
  85. PROCEDURE Neg* [base,-60]
  86.   ( parm [0] : e.DOUBLE )
  87.   : e.DOUBLE;
  88.  
  89. PROCEDURE Add* [base,-66]
  90.   ( leftParm  [0] : e.DOUBLE;
  91.     rightParm [1] : e.DOUBLE )
  92.   : e.DOUBLE;
  93.  
  94. PROCEDURE Sub* [base,-72]
  95.   ( leftParm  [0] : e.DOUBLE;
  96.     rightParm [1] : e.DOUBLE )
  97.   : e.DOUBLE;
  98.  
  99. PROCEDURE Mul* [base,-78]
  100.   ( leftParm  [0] : e.DOUBLE;
  101.     rightParm [1] : e.DOUBLE )
  102.   : e.DOUBLE;
  103.  
  104. PROCEDURE Div* [base,-84]
  105.   ( dividend [0] : e.DOUBLE;
  106.     divisor  [1] : e.DOUBLE )
  107.   : e.DOUBLE;
  108.  
  109. PROCEDURE Floor* [base,-90]
  110.   ( parm [0] : e.DOUBLE )
  111.   : e.DOUBLE;
  112.  
  113. PROCEDURE Ceil* [base,-96]
  114.   ( parm [0] : e.DOUBLE )
  115.   : e.DOUBLE;
  116.  
  117.  
  118. (*-- Library Base variable --------------------------------------------*)
  119.  
  120. <*$LongVars-*>
  121.  
  122. (*-----------------------------------*)
  123. PROCEDURE* [0] CloseLib (VAR rc : LONGINT);
  124.  
  125. BEGIN (* CloseLib *)
  126.   IF base # NIL THEN e.CloseLibrary (base) END
  127. END CloseLib;
  128.  
  129. BEGIN
  130.   base := SYS.VAL (m.MathIEEEBasePtr,
  131.                    e.OpenLibrary (mathIEEEDoubBasName, e.libraryMinimum));
  132.   IF base = NIL THEN HALT (100) END;
  133.   Kernel.SetCleanup (CloseLib)
  134. *)
  135. END MathIEEEDoubBas.
  136.